package com.cskaoyan.mall.product.service;

import com.cskaoyan.mall.product.dto.*;
import com.cskaoyan.mall.product.query.CategoryTrademarkParam;

import java.util.List;

/**
 * @author Macro_Ray
 * @since 2024/6/6 下午3:11
 */
public interface CategoryService {

    /**
     * 获取一级分类
     */
    List<FirstLevelCategoryDTO> getFirstLevelCategory();

    /**
     * 获取二级分类
     */
    List<SecondLevelCategoryDTO> getSecondLevelCategoryById(Long category1Id);

    /**
     * 获取三级分类
     */
    List<ThirdLevelCategoryDTO> getThirdLevelCategoryById(Long category2Id);

    /**
     * 根据三级分类id获取分类品牌列表
     */
    List<TrademarkDTO> findCateTradeListByTLCId(Long category3Id);

    /**
     * 获取未关联的品牌列表
     */
    List<TrademarkDTO> findUnLinkedTradeListByTLCId(Long category3Id);

    /**
     * 添加品牌关联
     */
    void saveCateTrademark(CategoryTrademarkParam categoryTrademarkParam);

    /**
     * 删除品牌关联
     */
    void removeCateTrademark(Long category3Id, Long trademarkId);

    /**获取商品详情页中的分类层级信息*/
    CategoryHierarchyDTO getCateHierarchy(Long category3Id);

    /**获取首页中的分类层级信息*/
    List<FirstLevelCategoryNodeDTO> getHomeCateHierarchyList();
}
